// Decompiled by DJ v3.7.7.81 Copyright 2004 Atanas Neshkov  Date: 2007-9-15 18:54:07


// Source File Name:   nn.java

package com.zelix;

import java.io.PrintWriter;
import java.util.*;


//            hc, nc, yc, ht, 
//            wg, yg, fh, l5, 
//            ro, wb, fd, fr, 
//            oe, re, dn, en, 
//            on, pn, lt, du, 
//            mt, kt, dv, ox, 
//            px, sx, vx, fy, 
//            wu, xu, ly, my, 
//            py, qy, vy, f1, 
//            wn, vh, gs, dd

public class nn
{

    private mt a[];
    private ro b;
    private f1 c[];
    private final ArrayList d;
    private qy e;
    private final HashMap f;
    private ArrayList g;
    private qy h;
    private final HashMap i;
    private qy j;
    private static String z[];

    public nn(mt amt[], ro ro1)
    {
        int k;
        fy fy1;
        int l;
        boolean flag3;
        boolean flag4;
        flag4 = lt.y;
        flag3 = wn.C;
        super();
        d = new ArrayList();
        g = new ArrayList();
        h = new qy();
        a = amt;
        b = ro1;
        k = a.length;
        f = new HashMap(px.a(k));
        i = new HashMap(f.size());
        fy1 = new fy();
        l = 0;
        if(!flag3) goto _L2; else goto _L1
_L1:
        Object obj;
        Object obj1;
        obj = a[l];
        if(((lt) (obj)).E())
            continue; /* Loop/switch isn't completed */
        obj1 = ((lt) (obj)).q();
        if(!flag3) goto _L4; else goto _L3
_L3:
        nc nc1 = (nc)((Enumeration) (obj1)).nextElement();
        if(nc1.f())
        {
            fy1.b(z[23], obj, obj);
            if(!flag3)
                continue; /* Loop/switch isn't completed */
        }
        hc hc1 = nc1.e();
        fy1.b(hc1.e(), obj, obj);
_L4:
        if(((Enumeration) (obj1)).hasMoreElements()) goto _L3; else goto _L5
_L5:
        l++;
_L2:
        if(l < k) goto _L1; else goto _L6
_L6:
        if(b == null) goto _L8; else goto _L7
_L7:
        Enumeration enumeration;
        obj = b.e();
        obj1 = new ArrayList();
        enumeration = ((fy) (obj)).d();
        if(!flag3) goto _L10; else goto _L9
_L9:
        ((ArrayList) (obj1)).add(enumeration.nextElement());
_L10:
        if(enumeration.hasMoreElements()) goto _L9; else goto _L11
_L11:
        int k1 = 0;
        if(!flag3) goto _L13; else goto _L12
_L12:
        Object obj2;
        Object obj3;
        Object obj4;
        obj2 = (String)((ArrayList) (obj1)).get(k1);
        Hashtable hashtable1 = ((fy) (obj)).b(obj2);
        obj3 = (Hashtable)hashtable1.clone();
        obj4 = ((Hashtable) (obj3)).keySet().iterator();
        if(!flag3) goto _L15; else goto _L14
_L14:
        mt mt1 = (mt)((Iterator) (obj4)).next();
        if(mt1.E())
            ((Iterator) (obj4)).remove();
_L15:
        if(((Iterator) (obj4)).hasNext()) goto _L14; else goto _L16
_L16:
        fy1.a(obj2, ((Hashtable) (obj3)));
        k1++;
_L13:
        if(k1 < ((ArrayList) (obj1)).size()) goto _L12; else goto _L17
_L17:
        if(!b.g()) goto _L8; else goto _L18
_L18:
        int l1;
        Collections.sort(((List) (obj1)));
        obj2 = b.f();
        l1 = 0;
        if(!flag3) goto _L20; else goto _L19
_L19:
        Object obj5;
        Object obj6;
        obj3 = (String)((ArrayList) (obj1)).get(l1);
        ((PrintWriter) (obj2)).println(z[22] + obj3 + "'");
        obj4 = ((fy) (obj)).b(obj3);
        obj5 = new ArrayList();
        obj6 = ((Hashtable) (obj4)).keys();
        if(!flag3) goto _L22; else goto _L21
_L21:
        mt mt2 = (mt)((Enumeration) (obj6)).nextElement();
        ((ArrayList) (obj5)).add(mt2.l());
_L22:
        if(((Enumeration) (obj6)).hasMoreElements()) goto _L21; else goto _L23
_L23:
        int k2;
        Collections.sort(((List) (obj5)));
        k2 = 0;
        if(!flag3) goto _L25; else goto _L24
_L24:
        ((PrintWriter) (obj2)).println(z[21] + ((ArrayList) (obj5)).get(k2));
        k2++;
_L25:
        if(k2 < ((ArrayList) (obj5)).size()) goto _L24; else goto _L26
_L26:
        l1++;
_L20:
        if(l1 < ((ArrayList) (obj1)).size()) goto _L19; else goto _L8
_L8:
        int i1;
        c = new f1[fy1.f()];
        i1 = 0;
        obj1 = fy1.d();
        if(!flag3) goto _L28; else goto _L27
_L27:
        String s = (String)((Enumeration) (obj1)).nextElement();
        Hashtable hashtable = fy1.b(s);
        c[i1++] = new f1(s, hashtable);
_L28:
        if(((Enumeration) (obj1)).hasMoreElements()) goto _L27; else goto _L29
_L29:
        int j1;
        HashSet hashset;
        j1 = c.length;
        hashset = new HashSet();
        obj2 = new HashSet();
        l1 = 0;
        if(!flag3) goto _L31; else goto _L30
_L30:
        int j2;
        obj3 = a[l1];
        if(((lt) (obj3)).E())
            continue; /* Loop/switch isn't completed */
        obj4 = new HashSet();
        j2 = 0;
        if(!flag3) goto _L33; else goto _L32
_L32:
        obj6 = c[j2];
        if(((HashSet) (obj6)).contains(obj3))
            ((HashSet) (obj4)).add(new xu(obj6));
        j2++;
_L33:
        if(j2 < j1) goto _L32; else goto _L34
_L34:
        Iterator iterator;
        if(((HashSet) (obj4)).size() <= 1)
            continue; /* Loop/switch isn't completed */
        obj6 = new HashSet();
        iterator = ((HashSet) (obj4)).iterator();
        if(!flag3) goto _L36; else goto _L35
_L35:
        xu xu1 = (xu)iterator.next();
        ((HashSet) (obj6)).add(xu1.a());
        hashset.add(xu1);
_L36:
        if(iterator.hasNext()) goto _L35; else goto _L37
_L37:
        ((HashSet) (obj2)).add(obj6);
        l1++;
_L31:
        if(l1 < k) goto _L30; else goto _L38
_L38:
        int i2;
        obj3 = new ArrayList();
        i2 = 0;
        if(!flag3) goto _L40; else goto _L39
_L39:
        j2 = c[i2];
        if(!hashset.contains(new xu(j2)))
            ((ArrayList) (obj3)).add(new vx(j2));
        i2++;
_L40:
        if(i2 < j1) goto _L39; else goto _L41
_L41:
        j2 = new ArrayList(((Collection) (obj2)));
        on on1 = new on();
        Collections.sort(j2, on1);
        iterator = j2.iterator();
        if(!flag3) goto _L43; else goto _L42
_L42:
        boolean flag;
        HashSet hashset1;
        int i3;
        flag = false;
        hashset1 = (HashSet)iterator.next();
        i3 = j2.size() - 1;
        if(!flag3) goto _L45; else goto _L44
_L44:
        HashSet hashset3 = (HashSet)j2.get(i3);
        if(hashset3.size() <= hashset1.size() && !flag3)
            break; /* Loop/switch isn't completed */
        if(!hashset3.containsAll(hashset1))
            continue; /* Loop/switch isn't completed */
        flag = true;
        if(!flag3)
            break; /* Loop/switch isn't completed */
        i3--;
_L45:
        if(i3 >= 0) goto _L44; else goto _L46
_L46:
        if(flag)
        {
            ((HashSet) (obj2)).remove(hashset1);
            iterator.remove();
        }
_L43:
        if(iterator.hasNext()) goto _L42; else goto _L47
_L47:
        Iterator iterator1 = ((HashSet) (obj2)).iterator();
        if(!flag3) goto _L49; else goto _L48
_L48:
        f1 af1[];
        Object obj7;
        int j3;
        int k3;
        HashSet hashset2 = (HashSet)iterator1.next();
        af1 = (f1[])hashset2.toArray(new f1[hashset2.size()]);
        obj7 = new vx(af1[0]);
        j3 = af1.length;
        k3 = 1;
        if(!flag3) goto _L51; else goto _L50
_L50:
        obj7 = ((vx) (obj7)).b(new vx(af1[k3]));
        k3++;
_L51:
        if(k3 < j3) goto _L50; else goto _L52
_L52:
        ((ArrayList) (obj3)).add(obj7);
_L49:
        if(iterator1.hasNext()) goto _L48; else goto _L53
_L53:
        int l2;
        Collections.sort(((List) (obj3)));
        l2 = ((ArrayList) (obj3)).size();
        boolean flag1 = false;
        obj7 = ((AbstractList) (obj3)).iterator();
        if(!flag3) goto _L55; else goto _L54
_L54:
        vx vx1 = (vx)((Iterator) (obj7)).next();
        en en1 = new en(vx1);
        d.add(en1);
_L55:
        if(((Iterator) (obj7)).hasNext()) goto _L54; else goto _L56
_L56:
        vx1 = l2 - 1;
        if(!flag3) goto _L58; else goto _L57
_L57:
        Object obj8;
        int l3;
        obj8 = (vx)((ArrayList) (obj3)).get(vx1);
        l3 = vx1 - 1;
        if(!flag3) goto _L60; else goto _L59
_L59:
        Object obj9;
        f1 f1_2;
        Iterator iterator2;
        obj9 = (vx)((ArrayList) (obj3)).get(l3);
        f1 f1_1 = ((vx) (obj8)).a(((vx) (obj9)));
        if(f1_1.size() <= 0)
            continue; /* Loop/switch isn't completed */
        f1_2 = new f1();
        iterator2 = f1_1.iterator();
        if(!flag3) goto _L62; else goto _L61
_L61:
        f1_2.addAll((f1)iterator2.next());
_L62:
        if(iterator2.hasNext()) goto _L61; else goto _L63
_L63:
        f1 f1_3;
        Iterator iterator3;
        f1_3 = ((vx) (obj9)).c(((vx) (obj8)));
        iterator3 = f1_2.iterator();
        if(!flag3) goto _L65; else goto _L64
_L64:
        Object obj10;
        boolean flag2;
        Iterator iterator4;
        obj10 = iterator3.next();
        flag2 = false;
        iterator4 = f1_3.iterator();
        if(!flag3) goto _L67; else goto _L66
_L66:
        f1 f1_4 = (f1)iterator4.next();
        if(f1_4.contains(obj10))
            flag2 = true;
_L67:
        if(iterator4.hasNext()) goto _L66; else goto _L68
_L68:
        if(flag2)
        {
            en en3 = (en)d.get(vx1);
            en3.a(obj10);
            if(!flag3)
                continue; /* Loop/switch isn't completed */
        }
        en en4 = (en)d.get(l3);
        en4.a(obj10);
_L65:
        if(iterator3.hasNext()) goto _L64; else goto _L69
_L69:
        l3--;
_L60:
        if(l3 >= 0) goto _L59; else goto _L70
_L70:
        vx1--;
_L58:
        if(vx1 >= 0) goto _L57; else goto _L71
_L71:
        obj8 = d.iterator();
        if(!flag3) goto _L73; else goto _L72
_L72:
        en en2;
        en2 = (en)((Iterator) (obj8)).next();
        en2.i();
        obj9 = en2.e().iterator();
        if(!flag3) goto _L75; else goto _L74
_L74:
        f.put(((Iterator) (obj9)).next(), en2);
_L75:
        if(((Iterator) (obj9)).hasNext()) goto _L74; else goto _L73
_L73:
        if(!((Iterator) (obj8)).hasNext())
        {
            if(vh.e != 0)
                wn.C = !flag3;
            if(gs.b != 0)
                lt.y = !flag4;
            return;
        }
        if(true) goto _L72; else goto _L76
_L76:
    }

    private void a(Iterator iterator, en en1, Random random, fy fy1, my my1, yg yg1, int k, 
            fd fd1, int l)
        throws wb
    {
        boolean flag1 = wn.C;
        if(!flag1) goto _L2; else goto _L1
_L1:
        if(en1.a())
            break; /* Loop/switch isn't completed */
        mt mt1 = (mt)iterator.next();
        String s = mt1.j();
        fh fh1 = fh.b(s);
        if(fh1.v() || fy1.a(s) || !mt1.ib() && (k > 1 || l == 1) || fd1 != null && fd1.b(mt1) || yg1.b(s, z[18]) && !flag1)
            continue; /* Loop/switch isn't completed */
        if(en1.f() == null)
        {
            String s1 = random.nextBoolean() ? "I" : "Z";
            dn dn1 = mt1.a(s1, 4, my1, yg1);
            g.add(dn1);
            Object obj = fy1.b(s, dn1.b(), dn1);
            en1.a(dn1);
            if(!flag1)
                continue; /* Loop/switch isn't completed */
        }
        boolean flag = false;
        String s2 = null;
        if(l == 1 || l == 2)
        {
            s2 = mt1.m();
            if(en1.a(s2) != null)
                continue; /* Loop/switch isn't completed */
            flag = true;
        } else
        {
            Iterator iterator1 = en1.h().iterator();
            while(iterator1.hasNext()) 
            {
                s2 = (String)iterator1.next();
                if(en1.a(s2) != null)
                    continue;
                flag = true;
                if(!flag1)
                    break;
            }
        }
        if(flag)
        {
            String s3 = random.nextBoolean() ? "I" : "Z";
            dn dn2 = mt1.a(s3, 4, my1, yg1);
            h.b(s2, dn2);
            fy1.b(s, dn2.b(), dn2);
            en1.a(s2, dn2);
        }
_L2:
        if(iterator.hasNext()) goto _L1; else goto _L3
_L3:
    }

    private vy a(String s, vy vy1, re re1)
    {
        boolean flag2 = wn.C;
        if(j != null) goto _L2; else goto _L1
_L1:
        Object obj;
        j = new qy();
        Map map = re1.f();
        obj = map.entrySet().iterator();
        if(!flag2) goto _L4; else goto _L3
_L3:
        java.util.Map.Entry entry = (java.util.Map.Entry)((Iterator) (obj)).next();
        String s1 = lt.b((String)entry.getKey());
        mt mt1 = fh.a(s1);
        if(mt1 != null)
        {
            dv dv1 = (dv)entry.getValue();
            oe oe1 = (oe)dv1.a();
            oe oe2 = (oe)dv1.b();
            j.b(oe1.a(), mt1);
            j.b(oe2.a(), mt1);
        }
_L4:
        if(((Iterator) (obj)).hasNext()) goto _L3; else goto _L2
_L2:
        Vector vector;
        HashSet hashset;
        Iterator iterator;
        vector = j.d(s);
        if(vector == null || vector.size() <= 0)
            break MISSING_BLOCK_LABEL_431;
        obj = new HashSet(7);
        hashset = new HashSet(7);
        iterator = d.iterator();
        if(!flag2) goto _L6; else goto _L5
_L5:
        en en2;
        boolean flag;
        boolean flag1;
        Iterator iterator1;
        en2 = (en)iterator.next();
        flag = true;
        flag1 = false;
        iterator1 = vector.iterator();
        if(!flag2) goto _L8; else goto _L7
_L7:
        mt mt2 = (mt)iterator1.next();
        if(!en2.b(mt2))
        {
            flag = false;
            if(!flag2)
                break; /* Loop/switch isn't completed */
        }
        if(en2.a(mt2))
            flag1 = true;
_L8:
        if(iterator1.hasNext()) goto _L7; else goto _L9
_L9:
        if(flag)
        {
            hashset.add(en2);
            if(flag1)
                ((Set) (obj)).add(en2);
        }
_L6:
        if(iterator.hasNext()) goto _L5; else goto _L10
_L10:
        en en3 = null;
        if(((Set) (obj)).size() == 1)
            en3 = (en)((Set) (obj)).iterator().next();
        else
        if(hashset.size() == 1)
            en3 = (en)hashset.iterator().next();
        if(en3 != null)
        {
            vy vy3 = (vy)vy1.clone();
            vy3.retainAll(en3.c());
            return vy3;
        } else
        {
            return null;
        }
        if(j.f() == 0 && d.size() == 1)
        {
            en en1 = (en)d.get(0);
            vy vy2 = (vy)vy1.clone();
            vy2.retainAll(en1.c());
            return vy2;
        } else
        {
            return null;
        }
    }

    private dn a(mt mt1, String s, String s1, String s2, re re1, Random random, fy fy1, 
            Hashtable hashtable, my my1, Set set, yg yg1)
    {
        dn dn1;
label0:
        {
            dn1 = null;
            String s3 = mt1.j();
            if(s1 != null)
            {
                dn1 = (dn)fy1.b(s3, s1);
                if(dn1 == null)
                {
                    dn1 = mt1.a(s1, s2, 4, yg1);
                    if(dn1 == null)
                    {
                        dn1 = mt1.a(s2, 4, my1, yg1);
                        String s4 = dn1.b();
                        Object obj2 = hashtable.put(new py(s3, s1, s2), s4);
                    }
                    Object obj = fy1.b(s3, dn1.b(), dn1);
                    if(!wn.C)
                        break label0;
                }
                if(s2 != null && !dn1.c().equals(s2))
                    re1.u(z[2] + s1 + z[1] + mt1.l() + z[0]);
            } else
            {
                dn1 = mt1.a(random.nextBoolean() ? "I" : "Z", 4, my1, set, yg1);
                Object obj1 = fy1.b(s3, dn1.b(), dn1);
            }
        }
        return dn1;
    }

    private dn a(String s, String s1, String s2, re re1, vy vy1, dd dd, Random random, 
            fy fy1, Hashtable hashtable, Hashtable hashtable1, fy fy2, Hashtable hashtable2, boolean flag, int k, 
            my my1, yg yg1, HashMap hashmap, fd fd1)
        throws wb
    {
        dn dn1;
label0:
        {
            boolean flag1 = wn.C;
            dn1 = null;
            String s3 = lt.a(s);
            Set set = re1.a(s);
            if(re1.m(s))
            {
                String s4 = re1.f(s);
                if(s4 == null)
                    s4 = s;
                if(s1 == null || re1.c(s, s1, s2))
                {
                    String s5 = null;
                    if(s1 != null)
                    {
                        s5 = re1.b(s, s1, s2);
                        if(s5 == null)
                            s5 = s1;
                    }
                    mt mt1 = fh.a(s);
                    if(mt1 != null)
                    {
                        ly ly1 = null;
                        if(my1 != null)
                            ly1 = my1.a(s);
                        if(s1 != null && ly1 != null && ly1.a(new l5(s1, s2)))
                        {
                            re1.u(z[10] + s5 + z[1] + s3 + z[8] + (flag ? z[13] : z[9]) + z[3]);
                            if(!flag1)
                                break label0;
                        }
                        if(!mt1.E())
                        {
                            lu lu = null;
                            if(s1 != null)
                                lu = yg1.a(s, s5, s2);
                            if(lu == null || !dd.a(lu))
                            {
                                if(mt1.ib() || k == 1)
                                {
                                    dn1 = a(mt1, s4, s1, s2, re1, random, fy1, hashtable1, my1, set, yg1);
                                    break label0;
                                }
                                re1.u(z[14] + s3 + z[8] + (flag ? z[13] : z[9]) + z[5]);
                                if(!flag1)
                                    break label0;
                            }
                            re1.u(z[14] + s3 + z[8] + (flag ? z[13] : z[9]) + z[4]);
                            dv dv1 = new dv(s1, s2);
                            fy2.b(s, dv1, dv1);
                            if(!flag1)
                                break label0;
                        }
                        re1.u(z[14] + s3 + z[8] + (flag ? z[13] : z[9]) + z[7]);
                        if(!flag1)
                            break label0;
                    }
                    mt mt2 = a(s, s4, s5, s2, vy1, hashmap, re1, dd, k, yg1, fd1);
                    if(mt2 != null)
                    {
                        Object obj = hashtable.put(s, mt2.j());
                        dn1 = a(mt2, s4, s1, s2, re1, random, fy1, hashtable1, my1, set, yg1);
                        hashtable2.put(new py(mt2.j(), dn1.b(), dn1.c()), s5);
                        break label0;
                    }
                    re1.u(z[14] + s3 + z[8] + (flag ? z[13] : z[9]) + z[12]);
                    if(!flag1)
                        break label0;
                }
                re1.d(z[14] + s3 + z[8] + (flag ? z[13] : z[9]) + z[11]);
                if(!flag1)
                    break label0;
            }
            re1.d(z[14] + s3 + z[8] + (flag ? z[13] : z[9]) + z[6]);
        }
        return dn1;
    }

    public pn a(mt mt1)
    {
        return (pn)i.get(mt1);
    }

    public void a(Hashtable hashtable, re re1, dd dd, ht ht1, my my1, yg yg1, fd fd1)
        throws wb
    {
        int k;
        int l;
        vy vy1;
        vy vy2;
        int i1;
        boolean flag;
        flag = wn.C;
        k = hashtable.size();
        l = a.length;
        vy1 = new vy(l);
        vy2 = new vy(1);
        i1 = 0;
        if(!flag) goto _L2; else goto _L1
_L1:
        a[i1].a(vy1, vy2);
        i1++;
_L2:
        if(i1 < l) goto _L1; else goto _L3
_L3:
        Vector vector;
        int j1;
        int k1;
        vector = ht1.i();
        j1 = vector.size();
        k1 = 0;
        if(!flag) goto _L5; else goto _L4
_L4:
        fh fh1 = (fh)vector.elementAt(k1);
        fh1.a(new sx(0), new sx(0), vy1, vy2);
        k1++;
_L5:
        if(k1 < j1) goto _L4; else goto _L6
_L6:
        Random random;
        fy fy1;
        Iterator iterator;
label0:
        {
            if(System.getProperty(z[19], "").equals(z[20]))
            {
                random = new Random(px.b());
                if(!flag)
                    break label0;
            }
            random = new Random(a.length);
        }
        random.nextBoolean();
        fy1 = new fy();
        if(re1 != null)
            a(hashtable, re1, vy1, dd, fd1, random, fy1, my1, yg1);
        iterator = d.iterator();
        if(!flag) goto _L8; else goto _L7
_L7:
        en en1;
        Iterator iterator1;
        en1 = (en)iterator.next();
        iterator1 = g.iterator();
        if(!flag) goto _L10; else goto _L9
_L9:
        dn dn1 = (dn)iterator1.next();
        String s = dn1.a();
        mt mt1 = fh.a(s);
        if(!en1.a(mt1))
            continue; /* Loop/switch isn't completed */
        en1.a(dn1);
        if(!flag)
            break; /* Loop/switch isn't completed */
_L10:
        if(iterator1.hasNext()) goto _L9; else goto _L11
_L11:
        Iterator iterator2 = en1.h().iterator();
        if(!flag) goto _L13; else goto _L12
_L12:
        String s1;
        Iterator iterator3;
        s1 = (String)iterator2.next();
        Vector vector1 = h.d(s1);
        if(vector1 == null)
            continue; /* Loop/switch isn't completed */
        iterator3 = vector1.iterator();
        if(!flag) goto _L15; else goto _L14
_L14:
        dn dn4 = (dn)iterator3.next();
        String s2 = dn4.a();
        mt mt2 = fh.a(s2);
        if(!en1.a(mt2))
            continue; /* Loop/switch isn't completed */
        en1.a(s1, dn4);
        if(!flag)
            break; /* Loop/switch isn't completed */
_L15:
        if(iterator3.hasNext()) goto _L14; else goto _L13
_L13:
        if(iterator2.hasNext()) goto _L12; else goto _L16
_L16:
        String s3;
        mt mt3;
        Iterator iterator7;
        vy vy3 = (vy)vy1.clone();
        vy3.retainAll(en1.c());
        List list = vy3.a(false);
        Iterator iterator4 = list.iterator();
        a(iterator4, en1, random, fy1, my1, yg1, k, fd1, 1);
        if(k == 1 && !en1.a())
        {
            Iterator iterator5 = list.iterator();
            a(iterator5, en1, random, fy1, my1, yg1, k, fd1, 2);
        }
        dn dn5 = en1.f();
        if(dn5 == null)
            continue; /* Loop/switch isn't completed */
        if(!en1.a())
        {
            Iterator iterator6 = list.iterator();
            a(iterator6, en1, random, fy1, my1, yg1, k, fd1, 3);
        }
        if(en1.a())
            continue; /* Loop/switch isn't completed */
        s3 = dn5.a();
        mt3 = fh.a(s3);
        iterator7 = en1.h().iterator();
        if(!flag) goto _L18; else goto _L17
_L17:
        String s4 = (String)iterator7.next();
        if(en1.a(s4) == null)
        {
            String s5 = random.nextBoolean() ? "I" : "Z";
            dn dn6 = mt3.a(s5, 4, my1, yg1);
            h.b(s4, dn6);
            Object obj = fy1.b(s3, dn6.b(), dn6);
            en1.a(s4, dn6);
        }
_L18:
        if(iterator7.hasNext()) goto _L17; else goto _L8
_L8:
        if(iterator.hasNext()) goto _L7; else goto _L19
_L19:
        int l1 = 0;
        if(!flag) goto _L21; else goto _L20
_L20:
        en en2 = (en)f.get(a[l1]);
        if(en2 != null)
        {
            dn dn2 = en2.f();
            if(dn2 != null && !i.containsKey(a[l1]))
            {
                dn dn3 = en2.a(a[l1].m());
                i.put(a[l1], new pn(dn2, dn3, a[l1].m()));
            }
        }
        l1++;
_L21:
        if(l1 >= a.length)
            return;
        if(true) goto _L20; else goto _L22
_L22:
    }

    public int a()
    {
        return d.size();
    }

    public int b()
    {
        return g.size();
    }

    public List d()
    {
        HashSet hashset;
        HashSet hashset1;
        Iterator iterator;
        boolean flag;
        flag = wn.C;
        hashset = new HashSet();
        hashset1 = new HashSet();
        iterator = d.iterator();
        if(!flag) goto _L2; else goto _L1
_L1:
        en en1 = (en)iterator.next();
        List list = en1.g();
        hashset.addAll(list);
        if(en1.f() != null)
            hashset1.addAll(list);
_L2:
        if(!iterator.hasNext())
        {
            hashset.removeAll(hashset1);
            ArrayList arraylist = new ArrayList(hashset);
            Collections.sort(arraylist);
            return arraylist;
        }
        if(true) goto _L1; else goto _L3
_L3:
    }

    private mt a(String s, String s1, String s2, String s3, vy vy1, HashMap hashmap, re re1, 
            dd dd, int k, yg yg1, fd fd1)
        throws wb
    {
        vy vy2;
        boolean flag;
        flag = wn.C;
        if(s2 == null)
            return null;
        if(hashmap.containsKey(s))
        {
            mt mt1 = (mt)hashmap.get(s);
            String s4 = mt1.j();
            lu lu = yg1.a(s4, s2, s3);
            if(lu == null || !dd.a(lu))
                return mt1;
        }
        if(re1.n(s1) && !re1.i(s1).equals(s))
            return null;
        vy2 = a(s, vy1, re1);
        if(vy2 == null) goto _L2; else goto _L1
_L1:
        String s5;
        Iterator iterator;
        s5 = lt.f(s);
        iterator = vy2.a(false).iterator();
        if(!flag) goto _L4; else goto _L3
_L3:
        mt mt2 = (mt)iterator.next();
        String s6 = mt2.j();
        if(mt2.m().equals(s5) && !mt2.E() && mt2.ib() && (fd1 == null || !fd1.b(mt2)) && !yg1.b(s6, z[18]) && (!re1.m(s6) || flag))
        {
            lu lu1 = yg1.a(s6, s2, s3);
            if((lu1 == null || !dd.a(lu1)) && !hashmap.containsValue(mt2))
            {
                hashmap.put(s, mt2);
                return mt2;
            }
        }
_L4:
        if(iterator.hasNext()) goto _L3; else goto _L2
_L2:
        return null;
    }

    public List a()
    {
        HashSet hashset;
        Iterator iterator;
        boolean flag;
        flag = wn.C;
        hashset = new HashSet();
        iterator = i.values().iterator();
        if(!flag) goto _L2; else goto _L1
_L1:
        pn pn1 = (pn)iterator.next();
        hashset.add(pn1.a());
_L2:
        if(!iterator.hasNext())
        {
            ArrayList arraylist = new ArrayList(hashset);
            return arraylist;
        }
        if(true) goto _L1; else goto _L3
_L3:
    }

    public qy b()
    {
        qy qy1;
        fy fy1;
        Iterator iterator;
        boolean flag;
        flag = wn.C;
        qy1 = new qy(h.f());
        fy1 = new fy();
        iterator = i.values().iterator();
        if(!flag) goto _L2; else goto _L1
_L1:
        pn pn1 = (pn)iterator.next();
        String s = pn1.a();
        dn dn1 = pn1.b();
        Object obj = fy1.b(s, dn1, dn1);
        if(obj == null)
            qy1.b(s, dn1);
_L2:
        if(!iterator.hasNext())
            return qy1;
        if(true) goto _L1; else goto _L3
_L3:
    }

    private boolean a(mt mt1, dn dn1)
    {
        mt mt2;
        boolean flag;
        flag = wn.C;
        String s = dn1.a();
        mt2 = fh.a(s);
        if(e != null) goto _L2; else goto _L1
_L1:
        int k;
        e = new qy(a.length);
        k = 0;
        if(!flag) goto _L4; else goto _L3
_L3:
        Iterator iterator = c[k].iterator();
        if(!flag) goto _L6; else goto _L5
_L5:
        e.b(iterator.next(), c[k]);
_L6:
        if(iterator.hasNext()) goto _L5; else goto _L7
_L7:
        k++;
_L4:
        if(k < c.length) goto _L3; else goto _L2
_L2:
        Vector vector = e.d(mt1);
        iterator = vector.iterator();
        if(!flag) goto _L9; else goto _L8
_L8:
        f1 f1_1 = (f1)iterator.next();
        if(!f1_1.contains(mt2))
            return false;
_L9:
        if(!iterator.hasNext())
            return true;
        if(true) goto _L8; else goto _L10
_L10:
    }

    private void a(Hashtable hashtable, re re1, vy vy1, dd dd, fd fd1, Random random, fy fy1, 
            my my1, yg yg1)
        throws wb
    {
        Hashtable hashtable1;
        HashMap hashmap;
        Hashtable hashtable2;
        Hashtable hashtable3;
        fy fy2;
        Hashtable hashtable4;
        boolean flag;
        Enumeration enumeration;
        boolean flag1;
        flag1 = wn.C;
        hashtable1 = new Hashtable();
        hashmap = new HashMap();
        hashtable2 = new Hashtable(7);
        hashtable3 = new Hashtable(7);
        fy2 = new fy(7, 7);
        hashtable4 = new Hashtable(7);
        flag = false;
        enumeration = re1.e();
        if(!flag1) goto _L2; else goto _L1
_L1:
        oe oe1 = (oe)enumeration.nextElement();
        dn dn1 = a(oe1.a(), oe1.b(), oe1.c(), re1, vy1, dd, random, fy1, hashtable2, hashtable3, fy2, hashtable4, true, hashtable.size(), my1, yg1, hashmap, fd1);
        if(dn1 != null)
        {
            g.add(dn1);
            Object obj = hashtable1.put(oe1, dn1);
            if(!flag1)
                continue; /* Loop/switch isn't completed */
        }
        flag = true;
_L2:
        if(enumeration.hasMoreElements() && !flag) goto _L1; else goto _L3
_L3:
        qy qy1;
        Enumeration enumeration1;
        qy1 = re1.b();
        enumeration1 = qy1.e();
        if(!flag1) goto _L5; else goto _L4
_L4:
        Object obj1;
        Object obj2;
        String s = (String)enumeration1.nextElement();
        obj1 = lt.b(s);
        if(!hashtable.containsKey(obj1))
            continue; /* Loop/switch isn't completed */
        Vector vector = qy1.d(s);
        obj2 = vector.elements();
        if(!flag1) goto _L7; else goto _L6
_L6:
        oe oe2 = (oe)((Enumeration) (obj2)).nextElement();
        dn dn2 = a(oe2.a(), oe2.b(), oe2.c(), re1, vy1, dd, random, fy1, hashtable2, hashtable3, fy2, hashtable4, false, hashtable.size(), my1, yg1, hashmap, fd1);
        if(dn2 != null)
        {
            h.b(obj1, dn2);
            Object obj3 = hashtable1.put(oe2, dn2);
            if(!flag1)
                continue; /* Loop/switch isn't completed */
        }
        flag = true;
_L7:
        if(((Enumeration) (obj2)).hasMoreElements()) goto _L6; else goto _L5
_L5:
        if(enumeration1.hasMoreElements() && !flag) goto _L4; else goto _L8
_L8:
        if(flag)
            break MISSING_BLOCK_LABEL_723;
        Map map = re1.f();
        obj1 = map.entrySet().iterator();
        if(!flag1) goto _L10; else goto _L9
_L9:
        java.util.Map.Entry entry = (java.util.Map.Entry)((Iterator) (obj1)).next();
        obj2 = (String)entry.getKey();
        String s2 = lt.b(((String) (obj2)));
        mt mt1 = fh.a(s2);
        if(mt1 == null)
            continue; /* Loop/switch isn't completed */
        if(!mt1.E())
        {
            dv dv1 = (dv)entry.getValue();
            oe oe3 = (oe)dv1.a();
            oe oe4 = (oe)dv1.b();
            dn dn3 = (dn)hashtable1.get(oe3);
            dn dn4 = (dn)hashtable1.get(oe4);
            if(dn3 != null && dn4 != null)
            {
                if(a(mt1, dn3) && a(mt1, dn4))
                {
                    i.put(mt1, new pn(dn3, dn4, mt1.m()));
                    if(!flag1)
                        continue; /* Loop/switch isn't completed */
                }
                flag = true;
                re1.u(z[14] + obj2 + z[17]);
                if(!flag1)
                    continue; /* Loop/switch isn't completed */
            }
            flag = true;
            re1.u(z[14] + obj2 + z[16]);
            if(!flag1)
                continue; /* Loop/switch isn't completed */
        }
        re1.v(z[14] + obj2 + z[15]);
_L10:
        if(((Iterator) (obj1)).hasNext()) goto _L9; else goto _L11
_L11:
        if(flag)
            i.clear();
        Enumeration enumeration2 = hashtable2.keys();
        if(!flag1) goto _L13; else goto _L12
_L12:
        obj1 = (String)enumeration2.nextElement();
        String s1 = (String)hashtable2.get(obj1);
        re1.k(((String) (obj1)), s1);
_L13:
        if(enumeration2.hasMoreElements()) goto _L12; else goto _L14
_L14:
        obj1 = hashtable3.keys();
        if(!flag1) goto _L16; else goto _L15
_L15:
        py py1 = (py)((Enumeration) (obj1)).nextElement();
        obj2 = (String)hashtable3.get(py1);
        re1.b((String)py1.a(), (String)py1.b(), (String)py1.c(), ((String) (obj2)));
_L16:
        if(((Enumeration) (obj1)).hasMoreElements()) goto _L15; else goto _L17
_L17:
        Enumeration enumeration3 = fy2.d();
        if(!flag1) goto _L19; else goto _L18
_L18:
        Enumeration enumeration4;
        obj2 = (String)enumeration3.nextElement();
        Hashtable hashtable5 = fy2.b(obj2);
        enumeration4 = hashtable5.keys();
        if(!flag1) goto _L21; else goto _L20
_L20:
        dv dv2 = (dv)enumeration4.nextElement();
        String s4 = (String)dv2.a();
        String s5 = (String)dv2.b();
        re1.d(((String) (obj2)), s4, s5);
_L21:
        if(enumeration4.hasMoreElements()) goto _L20; else goto _L19
_L19:
        if(enumeration3.hasMoreElements()) goto _L18; else goto _L22
_L22:
        obj2 = hashtable4.keys();
        if(!flag1) goto _L24; else goto _L23
_L23:
        py py2 = (py)((Enumeration) (obj2)).nextElement();
        String s3 = (String)hashtable4.get(py2);
        re1.a((String)py2.a(), (String)py2.b(), (String)py2.c(), s3);
_L24:
        if(!((Enumeration) (obj2)).hasMoreElements())
            return;
        if(true) goto _L23; else goto _L25
_L25:
    }

    public void a(fy fy1, fy fy2, qy qy1, fd fd1, fr fr1)
    {
        Iterator iterator;
        boolean flag;
        flag = wn.C;
        iterator = d.iterator();
        if(!flag) goto _L2; else goto _L1
_L1:
        en en1;
        ArrayList arraylist;
        Iterator iterator1;
        en1 = (en)iterator.next();
        if(en1.f() == null)
            continue; /* Loop/switch isn't completed */
        Set set = en1.e();
        arraylist = new ArrayList(set.size());
        iterator1 = set.iterator();
        if(!flag) goto _L4; else goto _L3
_L3:
        mt mt1 = (mt)iterator1.next();
        Vector vector = qy1.d(mt1);
        if(vector != null)
            arraylist.addAll(vector);
_L4:
        if(iterator1.hasNext()) goto _L3; else goto _L5
_L5:
        int k;
        HashMap hashmap;
        HashMap hashmap1;
        Iterator iterator2;
        Collections.sort(arraylist);
        Collections.reverse(arraylist);
        k = en1.d().size();
        hashmap = new HashMap(px.a(k));
        hashmap1 = new HashMap(hashmap.size());
        iterator2 = arraylist.iterator();
        if(!flag) goto _L7; else goto _L6
_L6:
        ox ox1 = (ox)iterator2.next();
        du du1 = (du)ox1.b;
        String s = du1.m();
        if(k <= hashmap.size() && k <= hashmap1.size() || ox1.a < 10F && !flag)
            break; /* Loop/switch isn't completed */
        if(fd1 != null && fd1.a(du1.t()) || fr1 != null && fr1.a(du1.t()) && !flag || du1.x() || du1.z())
            continue; /* Loop/switch isn't completed */
        if(!hashmap.containsKey(s))
        {
            hashmap.put(s, du1);
            if(!flag)
                continue; /* Loop/switch isn't completed */
        }
        if(!hashmap1.containsKey(s))
            hashmap1.put(s, du1);
_L7:
        if(iterator2.hasNext()) goto _L6; else goto _L8
_L8:
        Iterator iterator3 = hashmap.entrySet().iterator();
        if(!flag) goto _L10; else goto _L9
_L9:
        java.util.Map.Entry entry = (java.util.Map.Entry)iterator3.next();
        Object obj = entry.getValue();
        fy1.b(entry.getKey(), obj, obj);
_L10:
        if(iterator3.hasNext()) goto _L9; else goto _L11
_L11:
        Iterator iterator4 = hashmap1.entrySet().iterator();
        if(!flag) goto _L13; else goto _L12
_L12:
        java.util.Map.Entry entry1 = (java.util.Map.Entry)iterator4.next();
        Object obj1 = entry1.getValue();
        fy2.b(entry1.getKey(), obj1, obj1);
_L13:
        if(iterator4.hasNext()) goto _L12; else goto _L2
_L2:
        if(iterator.hasNext()) goto _L1; else goto _L14
_L14:
    }

    private static String z(char[] chs) {
        for (int i = 0; i < chs.length; i++) {
            byte key = 0;
            switch (i % 5) {
                case 0:
                    key = 0x3d;
                    break;
                case 1:
                    key = 48;
                    break;
                case 2:
                    key = 18;
                    break;
                case 3:
                    key = 96;
                    break;
                default:
                    key = 97;
                    break;
            }
            chs[i] ^= key;
        }
        return new String(chs).intern();
    }

    static 
    {
        String as[];
        as = new String[24];
        as[0] = "\032\020s\020\021XQ`\023AT^2\024\tX\020q\b\000SWw@\rRW2\r\016OU2\024\t\\^2\017\017^U2\002\024I\020e\t\025U\020v\t\007[U`\005\017I\020f\031\021XC<@Ad_g@\f\\I2\b\000KU2\024\016\035T{\023\025OYp\025\025X\020f\b\bN\020s\020\021QYq\001\025T_|@\000N\020s@\026U_~\005O";
        as[1] = "\032\020{\016A^\\s\023\022\035\027";
        as[2] = "iXw@\007TU~\004A\032";
        as[3] = "\035Rg\024ATD2\b\000N\020p\005\004S\020g\023\004Y\020{\016A\\^2\005\000O\\{\005\023\035V~\017\026\035_p\006\024NSs\024\bR^2\020\000NC<@8RE2\b\000KU2\020\023RRs\002\rD\020g\023\004Y\020f\b\004\035G`\017\017Z\020{\016\021HD2\003\t\\^u\005AQ_uAArDz\005\023JYa\005M\035I}\025APEa\024AYYa\024\023TRg\024\004\035Dz\t\022\035Qb\020\rTSs\024\bR^2\001\022\035Q2\027\tR\\wN";
        as[4] = "\035Rg\024ATD2\t\022\035^}\027AT^q\017\fMQf\t\003QU<@8RE2\r\024ND2\004\bND`\t\003HDw@\025UYa@\000M@~\t\002\\D{\017\017\035Qa@\000\035Gz\017\rX\036";
        as[5] = "\035Rg\024ATD2\t\022\035^}@\rR^u\005\023\035@g\002\rTS<@ S_f\b\004O\020q\f\000NC2\b\000Y\020f\017A_U2\025\022XT<@8RE2\r\024ND2\004\bND`\t\003HDw@\025UYa@\000M@~\t\002\\D{\017\017\035Qa@\000\035Gz\017\rX\036";
        as[6] = "\035Rg\024AY_w\023AS_f@\000M@w\001\023\035Y|@\025UU2\r\000T^2\020\000OD2\017\007\035Dz\005A^Xs\016\006X\020~\017\006\023\020:0'p\031";
        as[7] = "\035Rg\024ATD2\t\022\035^}\027A\\^2\t\017IU`\006\000^U<@ S_f\b\004O\020q\f\000NC2\b\000Y\020f\017A_U2\025\022XT<@Ad_g@\fHCf@\005TCf\022\b_Ef\005AIX{\023A\\@b\f\b^Qf\t\016S\020s\023A\\\020e\b\016QU<";
        as[8] = "\032\020s\020\021XQ`\023A\\C2\001A{\\}\027ArRt\025\022^Qf\t\016S\020";
        as[9] = "{_`\027\000OTQ\f\000NC(";
        as[10] = "{Yw\f\005\035^s\r\004\035\027";
        as[11] = "\035Rg\024ATDa@\004SD`\031AT^2\024\tX\020\177\001\bS\020b\001\023I\020}\006AIXw@\002UQ|\007\004\035\\}\007ATC2\003\016OBg\020\025\023";
        as[12] = "\035Rg\024ATC2\016\016\035\\}\016\006XB2\001\027\\Y~\001\003QU<@ S_f\b\004O\020q\f\000NC2\b\000Y\020f\017A_U2\025\022XT<@Ad_g@\fHCf@\005TCf\022\b_Ef\005AIX{\023A\\@b\f\b^Qf\t\016S\020s\023A\\\020e\b\016QU<";
        as[13] = "iBs\003\004\177Qq\013\"QQa\023[";
        as[14] = "~\\s\023\022\035\027";
        as[15] = "\032\020z\001\022\035Rw\005\017\035Sz\001\017ZUv@\025R\020p\005A\\^2\t\017IU`\006\000^U<@/R\020s\003\025T_|@\023XAg\t\023XT<";
        as[16] = "\032\020w\006\007XSf\005\005\035Rk@\000\035Sz\001\017ZU2\t\017\035S~\001\022N\020u\022\016H@{\016\006\035\030PIO\035i}\025APEa\024AYYa\024\023TRg\024\004\035Dz\t\022\035Qb\020\rTSs\024\bR^2\001\022\035Q2\027\tR\\wN";
        as[17] = "\032\020w\006\007XSf\005\005\035Rk@\000\035Sz\001\017ZU2\t\017\035S~\001\022N\020u\022\016H@{\016\006\035\030SIO\035i}\025APEa\024AYYa\024\023TRg\024\004\035Dz\t\022\035Qb\020\rTSs\024\bR^2\001\022\035Q2\027\tR\\wN";
        as[18] = "WQd\001\031\022Ux\002Nx^f\005\023MB{\023\004\177Us\016";
        as[19] = "g{_?3|~V/,tjW?.\177vG3\"|d[//";
        as[20] = "IBg\005";
        as[21] = "49";
        as[22] = "4w`\017\024MY|\007A\032";
        as[23] = "{y^%AniA4$p";
        for (int i = 0; i < as.length; i++) {
            as[i] = z(as[i].toCharArray());
        }
        z = as;
    }
}